package com.bringway.p2p.dao;

import java.util.List;
import java.util.Map;

import org.springframework.security.core.userdetails.UserDetails;

import com.bringway.global.domain.SysUserDetails;
import com.bringway.global.domain.User;

import net.sf.json.JSONObject;

/*
 * @author qjy
 * @className MyUserDao
 * @description 用户操作持久层dao接口
 * @date 2015年12月17日下午4:08:04
 */
public interface P2PUserDao {
	/**
	 * @方法名称:getAllusers
	 * @方法描述:获取所有用户的方法
	 * @author qjy
	 * @date 2015年12月17日下午4:08:56
	 * @param parms
	 * @return
	 */
	public List getAllusers(JSONObject parms);

	/**
	 * @方法名称:getAllusersLimit
	 * @方法描述:查询所有的用户，并且分页
	 * @author qjy
	 * @date 2015年12月28日下午2:48:29
	 * @param parms
	 * @return
	 */
	public List getAllusersLimit(JSONObject parms);
	
	/**
	 * @方法名称:addUser
	 * @方法描述:新增用户
	 * @author qjy
	 * @date 2015年12月28日下午4:45:05
	 * @param parms
	 * @return
	 */
	public int addUser(JSONObject parms);
	
	/**
	 * @方法名称:deleteUser
	 * @方法描述:删除用户
	 * @author qjy
	 * @date 2015年12月29日上午9:34:02
	 * @param parms
	 * @return
	 */
	public int deleteUser(JSONObject parms);
	
	/**
	 * @方法名称:updateUser
	 * @方法描述:更新用户的方法
	 * @author qjy
	 * @date 2015年12月29日下午2:00:11
	 * @param parms
	 * @return
	 */
	public int updateUser(JSONObject parms);
	
	/**
	 * @方法名称:updateAppUser
	 * @方法描述:更新用户的方法
	 * @author qjy
	 * @date 2015年12月29日下午2:00:11
	 * @param parms
	 * @return
	 */
	public int updateAppUser(JSONObject parms);
	
	
	
	/**
	 * @方法名称:resetPassword
	 * @方法描述:
	 * @author qjy
	 * @date 2015年12月29日下午4:32:07
	 * @param parms
	 * @return
	 */
	public int resetPassword(JSONObject parms);
	
	/**
	 * @方法名称:login
	 * @方法描述:登录
	 * @author qjy
	 * @date 2015年12月30日上午9:53:06
	 * @param gyh
	 * @return
	 */
	public SysUserDetails login(String gyh);
	
	/**
	 * @方法名称:login
	 * @方法描述:登录的操作
	 * @author qjy
	 * @date 2015年12月30日下午2:14:20
	 * @param gyh
	 * @param password
	 * @return
	 */
	User login(String gyh, String password);
	
	
	/**
	 * @方法名称:addUserRole
	 * @方法描述:新增用户角色关系
	 * @author qjy
	 * @date 2015年12月31日下午3:17:54
	 * @param userId
	 * @param roleId
	 * @param XM
	 */
	public void addUserRole(String userId, String roleId,String XM);
	
	/**
	 * @方法名称:getPageCount
	 * @方法描述:获取总记录数
	 * @author qjy
	 * @date 2016年1月28日下午5:11:23
	 * @param tableName
	 * @return
	 */
	public int getPageCount(String tableName);
	
	/**
	 * @方法名称: comparePassword
	 * @方法描述: TODO
	 * @时间:2016年2月18日下午5:34:23
	 * @author:qjy
	 * @param parms
	 * @return
	 */
	public int  comparePassword(JSONObject parms);
	
	/**
	 * @方法名称: changePassword
	 * @方法描述: 修改密码
	 * @时间:2016年2月19日上午10:16:05
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public int changePassword(JSONObject parms);
	
	/**
	 * @方法名称: getUserByGyhOrPassword
	 * @方法描述: 查询用户---根据用户名
	 * @时间:2016年2月29日上午10:48:13
	 * @author:邵jing
	 * @param gyh
	 * @return
	 */
	public int getUserByGyh(String gyh);
	
	/**
	 * 
	 * @方法名称: getUserByGyhAndPassword
	 * @方法描述: 查询用户---根据用户名和密码
	 * @时间:2016年2月29日上午10:58:07
	 * @author:邵jing
	 * @param params
	 * @return
	 */
	public int getUserByGyhAndPassword(JSONObject params);
	
	/**
	 * @方法名称: getUsersItems
	 * @方法描述: 获取用户总记录数
	 * @时间:2016年3月1日下午1:38:03
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public int getUsersItems(JSONObject parms);

	/**
	 * @方法名称: deleteUser_Menu
	 * @方法描述: 删除用户菜单关系
	 * @时间:2016年3月7日上午11:51:25
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public int deleteUser_Menu(JSONObject parms);

	/**
	 * @方法名称: deleteUser_Role
	 * @方法描述: 删除用户角色关系 
	 * @时间:2016年3月7日下午1:40:29
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	public int deleteUser_Role(JSONObject parms);

}

